class dealType {
    constructor () {
        super()
    }
}
class  detectionType extends dealType {
    /** 
        * getTypePrecise 检测属性
        * @param data 当前传入的数据
    */
    getTypePrecise(data) {
        return Object.prototype.toString.call(data).slice(8, -1);
    }
    /** 
        * getTypeInstanceof 检测属性
        * @param data 当前传入的数据
        * type Array RegExp  Object  Number....
        * 缺陷：1.不能检测基本类型  2.原型上出现过都是true
    */
    getTypeInstanceof(data,type) {
      return  data instanceof type
    }
     /** 
        * getTypeConstructor 检测属性
        * @param data 当前传入的数据
        * type Array RegExp  Object  Number....
        * 缺陷：更改原型链将会改变判断
    */
    getTypeConstructor(data,type) { 
        data.constructor === type
    }
    /** 
        * getType 检测属性
        * @param data 当前传入的数据
        * 缺陷：不能区分null 与object
    */
     getType(data) { 
        return  typeof data
    }
}

export default dealType